#metadef
#idString AMREL,EL-NFP
#name Amrel PLA800-60-300
#handle APLA
#replaceText MinVoltage 0.1
#replaceText MinResistance 0.3
#replaceText MaxCurrent 300
#replaceText MaxVoltage 60
#replaceText MaxResistance 10000
#replaceText MaxPower 800


#meta
#idString AMREL,EL-NFP
#name PLA800-60-300
#handle APLA
#port 3000
#driver ASCII


;Thank you HJK for the program and tips and MikeLud for all the code I copied
; this is for AMREL loads that follow SCPI pretty well but often send back an OK that kills scripts
; I copied as many of the commands as I could but please edit to your desire.



; A list of possible column name with unit and formatter (SI, Time, Int, D0..D6) 
; Format: #value ColumnName Unit Format {Selector}
; Selector is only used when column layout varies with mode, this often require the use of #cmdMode
#value Voltage V D4
#value Current A D3
#value Power W D4

; How to poll for data, this is used for table and #values?
; a #askMode, #cmdMode and #prepareSample is used before this is string is used.
; Number of returned values must match number of columns defined with #value
; This is a single line command
#askValues MEAS:VOLT?;MEAS:CURR?;MEAS:POW?

; Accept this delay when reading values (seconds)
#readingDelay 1

; Final command to meter before breaking connection, used to restore local control
#finalCmd :INP 0

;#forceUpperCase 1
; Some command remaps so my scripts work :)

;Current Subsystem
#scpiCmd CURR txrx :CURRent (value)
#scpiCmd CURR? txrx? :CURRent? 
#scpiCmd CURR:TRIG txrx :CURRent:TRIGgered (value)
#scpiCmd CURR:TRIG txrx? :CURRent:TRIGgered?
#scpiCmd ISET txrx :ISET (value)
#scpiCmd ISET? txrx? :ISET? 
#scpiCmd CURR:DUTY txrx :CURRent:DUTY (value)
#scpiCmd CURR:DUTY? txrx? :CURRent:DUTY? 
#scpiCmd CURR:TRAN:DUTY txrx :CURRent:TRANsient:DUTY (value)
#scpiCmd CURR:TRAN:DUTY? txrx? :CURRent:TRANsient:DUTY? 
#scpiCmd CURR:FREQ txrx :CURRent:FREQuency (value)
#scpiCmd CURR:FREQ? txrx? :CURRent:FREQuency? 
#scpiCmd CURR:TRAN:FREQ txrx :CURRent:TRANsient:FREQuency (value)
#scpiCmd CURR:TRAN:FREQ? txrx? :CURRent:TRANsient:FREQuency?
#scpiCmd CURR:PROT txrx :CURRent:PROTection (value)
#scpiCmd CURR:PROT:OVER txrx :CURRent:PROTection:OVER (value)
#scpiCmd CURR:PROT:DEL txrx :CURRent:PROTection:DELay (value)
#scpiCmd CURR:PROT:OVER:DEL txrx :CURRent:PROTection:OVER:DELay (value) 
#scpiCmd CURR:UND:DEL txrx :CURRent:PROTection:UNDer:DELay (value)
#scpiCmd CURR:PROT:STAT txrx :CURRent:PROTection:STATe (value)
#scpiCmd CURR:PROT:UND txrx :CURRent:PROTection:UNDer (value)
#scpiCmd CURR:PROT? txrx? :CURRent:PROTection? 
#scpiCmd CURR:PROT:OVER? txrx? :CURRent:PROTection:OVER? 
#scpiCmd CURR:PROT:DEL? txrx? :CURRent:PROTection:DELay? 
#scpiCmd CURR:PROT:OVER:DEL? txrx? :CURRent:PROTection:OVER:DELay? 
#scpiCmd CURR:PROT:UND:DEL? txrx? :CURRent:PROTection:UNDer:DELay? 
#scpiCmd CURR:PROT:STAT? txrx? :CURRent:PROTection:STATe? 
#scpiCmd CURR:PROT:UND? txrx? :CURRent:PROTection:UNDer? 
#scpiCmd CURR:PROT:UND:STAT? txrx? :CURRent:PROTection:UNDer:STATe? 
#scpiCmd CURR:SLEW txrx :CURRent:SLEW (value)
#scpiCmd CURR:SLEW:BOTH txrx :CURRent:SLEW:BOTH (value)
#scpiCmd CURR:SLEW:NEG txrx :CURRent:SLEW:NEGative (value)
#scpiCmd CURR:SLEW:NEG? txrx? :CURRent:SLEW:NEGative? 
#scpiCmd CURR:SLEW:POS txrx :CURRent:SLEW:POSitive (value)
#scpiCmd CURR:SLEW? txrx? :CURRent:SLEW? 
#scpiCmd CURR:SLEW:POS? txrx? :CURRent:SLEW:POSitive? 
#scpiCmd CURR:TLEV txrx :CURRent:TLEVel (value) 
#scpiCmd ITR txrx :ITR (value) 
#scpiCmd CURR:TLEV? txrx? :CURRent:TLEVel? 
#scpiCmd ITR? txrx? :ITR? 
#scpiCmd CURR:TRAN:TWID? txrx? :CURRent:TRANsient:TWIDth? 
#scpiCmd CURR:TWID? txrx? :CURRent:TWIDth? 
; Input Commands
#scpiCmd INP txrx :INPut (value) 
#scpiCmd OUT txrx :OUTPut (value) 
#scpiCmd INP? txrx? :INPut? 
#scpiCmd OUT txrx? :OUTPut? 
#scpiCmd INP:PROT:CLE txrx :INPut:PROTection:CLEar 
#scpiCmd OUT:PROT:CLE txrx :OUTPut:PROTection:CLEar 
#scpiCmd INP:SHOR txrx :INPut:SHORt (value) 
#scpiCmd OUT:SHOR txrx :OUTPut:SHORt (value) 
#scpiCmd SHOR txrx :SHORt (value) 
#scpiCmd INP:SHOR? txrx? :INPut:SHORt? 
#scpiCmd OUT:SHOR? txrx? :OUTPut:SHORt? 
#scpiCmd SHOR? txrx? :SHORt? 
;Step Commands
#scpiCmd STEP:COUN txrx :STEP:COUNt (value) ;This command accepts parameters in the range 1 through 65535, or infinity(0).
#scpiCmd STEP:COUN? txrx? :STEP:COUNt? 
#scpiCmd STEP:CURR txrx :STEP:CURRent (value) 
#scpiCmd STEP:CURR? txrx? :STEP:CURRent? 
#scpiCmd STEP:CURR:TIM txrx :STEP:CURRent:TIMe (value)(value)
#scpiCmd STEP:CURR:TIM? txrx? :STEP:CURRent:TIMe? 
#scpiCmd STEP:CURR:STAT txrx :STEP:CURRent:STATe (value)
#scpiCmd STEP:CURR:STAT? txrx? :STEP:CURRent:STATe?
#scpiCmd STEP:POW txrx :STEP:POWer (value)(value)
#scpiCmd STEP:POW? txrx? :STEP:POWer?
#scpiCmd STEP:POW:TIM txrx :STEP:POWer:TIMe (value)(value)
#scpiCmd STEP:POW:TIM? txrx? :STEP:POWer:TIMe? 
#scpiCmd STEP:POW:STAT txrx :STEP:POWer:STATe 
#scpiCmd STEP:POW:STAT? txrx? :STEP:POWer:STATe?
#scpiCmd STEP:RES txrx :STEP:RESistance (value)(value)
#scpiCmd STEP:RES txrx? :STEP:RESistance? 
#scpiCmd STEP:RES:TIM txrx :STEP:RESistance:TIMe (value)(value)
#scpiCmd STEP:RES:TIM? txrx? :STEP:RESistance:TIMe?
#scpiCmd STEP:RES:STAT txrx :STEP:RESistance:STATe (value)
#scpiCmd STEP:RES:STAT? txrx? :STEP:RESistance:STATe?
#scpiCmd STEP:VOLT txrx :STEP:VOLTage (value)(value)
#scpiCmd STEP:VOLT? txrx? :STEP:VOLTage?
#scpiCmd STEP:VOLT:TIM txrx :STEP:VOLTage:TIMe (value)(value)
#scpiCmd STEP:VOLT:TIM? txrx? :STEP:VOLTage:TIMe?
#scpiCmd STEP:VOLT:STAT txrx :STEP:VOLTage:STATe (value)
#scpiCmd STEP:VOLT:STAT? txrx? :STEP:VOLTage:STATe?
#scpiCmd STEP:TIM:UNIT txrx :STEP:TIMe:UNIT (value)
#scpiCmd STEP:TIM:UNIT? txrx? :STEP:TIMe:UNIT?
;Measurement Commands
#scpiCmd MEAS:CURR? txrx? :MEASure:CURRent?
#scpiCmd MEAS:POW? txrx? :MEASure:POWer?
#scpiCmd MEAS:RES? txrx? :MEASure:RESistance?
#scpiCmd MEAS:VOLT? txrx? :MEASure:VOLTage?
#scpiCmd MEAS:VOLT:INP? txrx? :MEASure:VOLT:INPut?
#scpiCmd MEAS:DEL txrx :MEASure:DELay (value) 
#scpiCmd MEAS:DEL? txrx? :MEASure:DELay?
#scpiCmd MEAS:SENS txrx :MEASure:SENSe (value) 
#scpiCmd MEAS:SENS? txrx? :MEASure:SENSe?
;Mode Commands
#scpiCmd MOD txrx :MODe (value)
#scpiCmd MOD? txrx? :MODe?
#scpiCmd MOD:RANG txrx :MODe:RANGe (value) 
#scpiCmd MOD:RANG? txrx? :MODe:RANGe?
;Port Commands
#scpiCmd PORT txrx :PORT (value) 
#scpiCmd PORT? txrx? :PORT?
#scpiCmd INP:CON txrx :INPut:CONtactor <mode>
#scpiCmd INP:CON? txrx? :INPut:CONtactor?
#scpiCmd INP:CON:DEL txrx :INPut:CONtactor:DELay (value) 
#scpiCmd INP:CON:DEL? txrx? :INPut:CONtactor:DELay?
;Power Subsystem
#scpiCmd POW txrx :POWer (value) 
#scpiCmd POW:TRIG txrx :POWer:TRIGgered (value) 
#scpiCmd PSET txrx :PSET (value) 
#scpiCmd POW? txrx? :POWer?
#scpiCmd POW:TRIG? txrx? :POWer:TRIGgered? 
#scpiCmd PSET? txrx? :PSET?
#scpiCmd POW:TRAN:DUTY txrx :POWer:TRANsient:DUTY (value)
#scpiCmd POW:DUTY txrx :POWer:DUTY (value)
#scpiCmd POW:DUTY? txrx? :POWer:DUTY? 
#scpiCmd POW:TRAN:DUTY? txrx? :POWer:TRANsient:DUTY?
#scpiCmd POW:TRAN:FREQ txrx :POWer:TRANsient:FREQuency (value)
#scpiCmd POW:FREQ txrx :POWer:FREQuency (value)
#scpiCmd POW:FREQ? txrx? :POWer:FREQuency? 
#scpiCmd POW:TRAN:FREQ? txrx? :POWer:TRANsient:FREQuency?
#scpiCmd POW:PROT txrx :POWer:PROTection (value)
#scpiCmd POW:PROT:OVER txrx :POWer:PROTection:OVER (value)
#scpiCmd POW:PROT:DEL txrx :POWer:PROTection:DELay (value)
#scpiCmd POW:PROT:OVER:DEL txrx :POWer:PROTection:OVER:DELay (value)
#scpiCmd POW:PROT:UND:DEL txrx :POWer:PROTection:UND:DELay (value)
#scpiCmd POW:PROT:STAT txrx :POWer:PROTection:STATe (value)
#scpiCmd POW:PROT:UND txrx :POWer:PROTection:UNDer (value)
#scpiCmd POW:PROT:UND:STAT txrx :POWer:PROTection:UND:STAT (value)
#scpiCmd POW:PROT? txrx? :POWer:PROTection? 
#scpiCmd POW:PROT:OVER? txrx? :POWer:PROTection:OVER? 
#scpiCmd POW:PROT:DEL? txrx? :POWer:PROTection:DELay? 
#scpiCmd POW:PROT:OVER:DEL? txrx? :POWer:PROTection:OVER:DELay? 
#scpiCmd POW:PROT:UND:DEL? txrx? :POWer:PROTection:UNDer:DELay? 
#scpiCmd POW:PROT:STAT? txrx? :POWer:PROTection:STATe? 
#scpiCmd POW:PROT:UND? txrx? :POWer:PROTection:UNDer? 
#scpiCmd POW:PROT:UND:STAT? txrx? :POWer:PROTection:UNDer:STATe? 
#scpiCmd POW:SLEW:BOTH :POW:SLEW:BOTH (value)
#scpiCmd POW:SLEW:NEG txrx :POWer:SLEW:NEGative (value) 
#scpiCmd POW:SLEW:NEG? txrx? :POWer:SLEW:NEGative? 
#scpiCmd POW:SLEW txrx :POWer:SLEW (value) 
#scpiCmd POW:SLEW:POS txrx :POWer:SLEW:POSitive (value) 
#scpiCmd POW:SLEW? txrx? :POWer:SLEW? 
#scpiCmd POW:SLEW:POS? txrx? :POWer:SLEW:POSitive? 
#scpiCmd POW:TLEV txrx :POWer:TLEVel (value) 
#scpiCmd PTR txrx :PTR (value) 
#scpiCmd POW:TLEV? txrx? :POWer:TLEVel? 
#scpiCmd PTR? txrx? :PTR?
#scpiCmd POW:TRAN:TWID txrx :POWer:TRANsient:TWIDth (value)
#scpiCmd POW:TWID txrx :POWer:TWIDth (value)
#scpiCmd POW:TRAN:TWID? txrx? :POWer:TRANsient:TWIDth?
#scpiCmd POW:TWID? txrx? :POWer:TWIDth?
;Resistance Subsystem
#scpiCmd RES txrx :RESistance (value) 
#scpiCmd RES:TRIG txrx :RESistance:TRIGgered (value) 
#scpiCmd RSET txrx :RSET (value) 
#scpiCmd RES? txrx? :RESistance? 
#scpiCmd RES:TRIG? txrx? :RESistance:TRIGgered?
#scpiCmd RSET? txrx? :RSET? 
#scpiCmd RES:TRAN:DUTY txrx :RESistance:TRANsient:DUTY (value)
#scpiCmd RES:DUTY txrx :RESistance:DUTY (value) 
#scpiCmd RES:DUTY? txrx? :RESistance:DUTY? 
#scpiCmd RES:TRAN:DUTY? txrx? :RESistance:TRANsient:DUTY?
#scpiCmd RES:TRAN:FREQ txrx :RESistance:TRANsient:FREQuency (value)
#scpiCmd RES:FREQ txrx :RESistance: FREQuency (value) 
#scpiCmd RES:FREQ? txrx? :RESistance:FREQuency?
#scpiCmd RES:TRAN:FREQ? txrx? :RESistance:TRANsient:FREQuency?
#scpiCmd RES:SLEW:BOTH txrx :RESistance:SLEW:BOTH (value) 
#scpiCmd RES:SLEW:NEG txrx :RESistance:SLEW:NEGative (value)
#scpiCmd RES:SLEW:NEG? txrx? :RESistance:SLEW:NEG?
#scpiCmd RES:SLEW txrx :RESistance:SLEW (value) 
#scpiCmd RES:SLEW:POS txrx :RESistance:SLEW:POSitive (value) 
#scpiCmd RES:SLEW? txrx? :RESistance:SLEW?
#scpiCmd RES:SLEW:POS? txrx? :RESistance:SLEW:POSitive? 
#scpiCmd RES:TLEV txrx :RESistance:TLEVel (value) 
#scpiCmd RTR txrx :RTR (value) 
#scpiCmd RTR:TLEV? txrx? :RESistance:TLEVel?
#scpiCmd RTR? txrx? :RTR? 
#scpiCmd RES:TRAN:TWID txrx :RESistance:TRANsient:TWIDth (value) 
#scpiCmd RES:TWID txrx :RESistance:TWIDth (value) 
#scpiCmd RES:TRAN:TWID? txrx? :RESistance:TRANsient:TWIDth? 
#scpiCmd RES:TWID? txrx? :RESistance:TWIDth? 
;Status Commands
#scpiCmd STAT:OPER? txrx? :STATus:OPERation? 
#scpiCmd STAT:OPER:COND? txrx? :STATus:OPERation:CONDition? 
#scpiCmd STAT:OPER:ENAB txrx :STATus:OPERation:ENABle (value)
#scpiCmd STAT:OPER:ENAB? txrx? :STATus:OPERation:ENABle? 
#scpiCmd NTR txrx :STATus:OPERation:NTR (value) 
#scpiCmd PTR txrx :STATus:OPERation:PTR (value) 
#scpiCmd NTR? txrx? :STATus:OPERation:NTR? 
#scpiCmd PTR txrx? :STATus:OPERation:PTR? 
#scpiCmd STAT:QUES? txrx? :STATus:QUEStionable? 
#scpiCmd STAT:QUES:COND? txrx? :STATus:QUEStionable:CONDition? 
#scpiCmd STAT:QUES:ENAB txrx :STATus:QUEStionable:ENABle (value) 
#scpiCmd STAT:QUES:ENAB? txrx? :STATus:QUEStionable:ENABle? 
;System Commands
#scpiCmd SYST:CHAN:VERS? txrx? :SYSTem:CHANnel:VERSion? 
#scpiCmd SYST:COMM:SYNT txrx :SYSTem:COMMand:SYNTax (value)
#scpiCmd SYST:COMM:SYNT txrx? :SYSTem:COMMand:SYNTax? 
#scpiCmd SYST:CONS:BAUD txrx :SYSTem:CONSole:BAUD (value)
#scpiCmd SYST:CONS:BAUD? txrx? :SYSTem:CONSole:BAUD?
#scpiCmd SYST:CONS:EOS txrx :SYSTem:CONSole:EOS (value) 
#scpiCmd SYST:CONS:EOS? txrx? :SYSTem:CONSol:EOS? 
#scpiCmd SYST:CROS:MOD:STAT txrx :SYSTem:CROSs:MODe:STATe (value) 
#scpiCmd SYST:CROS:MOD:STAT? txrx? :SYSTem:CROSs:MODe:STATe? 
#scpiCmd SYST:CROS:RANG:STAT txrx :SYSTem:CROSs:RANGe:STATe (value) 
#scpiCmd SYST:CROS:RANG:STAT txrx? :SYSTem:CROSs:RANGe:STATe? 
#scpiCmd SYST:EOS txrx :SYSTem:EOS (value)
#scpiCmd SYST:EOS? txrx? :SYSTem:EOS? 
#scpiCmd SYST:ERR? txrx? :SYSTem:ERRor? 
#scpiCmd SYST:EXT:CONT txrx :SYSTem:EXTernal:CONTrol (value) 
#scpiCmd SYS:EXT:CONT? txrx? :SYSTem:EXTernal:CONTrol? 
#scpiCmd SYST:GBIB:ADDR txrx :SYSTem:GPIB:ADDRess (value) 
#scpiCmd SYST:GBIB:ADDR? txrx? :SYSTem:GPIB:ADDRess? 
#scpiCmd SYST:GBIB:EOS txrx :SYSTem:GPIB:EOS (value) 
#scpiCmd SYST:GBIB:EOS? txrx? :SYSTem:GPIB:EOS? 
#scpiCmd SYST:INP:BOOT txrx :SYSTem:INPut:BOOT (VALUE)
#scpiCmd SYST:INP:BOOT? txrx? :SYSTem:INPut:BOOT? 
#scpiCmd SYST:MOD? txrx? :SYSTem:MODel? 
#scpiCmd SYST:NET:ADDR txrx :SYSTem:NET:ADDRess (value) 
#scpiCmd SYST:NET:ADDR? txrx? :SYSTem:NET:ADDRress?
#scpiCmd SYST:NET:DHCP txrx :SYSTem:NET:DHCP (value)
#scpiCmd SYST:NET:DHCP? txrx? :SYSTem:NET:DHCP? 
#scpiCmd SYST:NET:EOS txrx :SYSTem:NET:EOS (value)
#scpiCmd SYST:NET:EOS? txrx? :SYSTem:NET:EOS? 
#scpiCmd SYST:NET:GAT txrx :SYSTem:NET:GATeway (value)
#scpiCmd SYST:NET:GAT? txrx? :SYSTem:NET:GATeway? 
#scpiCmd SYST:NET:STAT? txrx? :SYSTem:NET:STATe? 
#scpiCmd SYST:NET:SUBN txrx :SYSTem:NET:SUBNet (value)
#scpiCmd SYST:NET:SUBN? txrx? :SYSTem:NET:SUBNet? 
#scpiCmd SYST:OSC:PROT txrx :SYSTem:OSC:PROT (value)
#scpiCmd SYST:OSC:PROT? txrx? :SYSTem:OSC:PROT?
#scpiCmd SYST:RANG? txrx? :SYSTem:RANGe? 
#scpiCmd SYST:SER? txrx? :SYSTem:SERial? 
#scpiCmd SYST:SHOR:STAT? txrx? :SYSTem:SHORt:STATus? 
#scpiCmd SYST:VERS? txrx? :SYSTem:VERSion? 
#scpiCmd SYST:INH:STAT? txrx? :SYSTem:INH:STATus? 
;Transient Commands
#scpiCmd TRAN txrx :TRANsient (value) 
#scpiCmd TRAN? txrx? :TRANsient? 
#scpiCmd TR:MOD txrx :TR:MODe (value) 
#scpiCmd TR:MOD txrx :TRANsient:MODe (value) 
#scpiCmd TR:MOD? txrx? :TR:MODe? 
#scpiCmd TRAN:MOD? txrx? :TRANsient:MODe? 
;Trigger Commands
#scpiCmd ABOR txrx :ABORt 
#scpiCmd TRIG txrx :TRIGger 
#scpiCmd TRIG:DEL txrx :TRIG:DEL (value) 
#scpiCmd TRIG:DEL? txrx? :TRIG:DEL?
#scpiCmd TRIG:SOUR txrx :TRIGger:SOURce (value) 
#scpiCmd TRIG:SOUR? txrx? :TRIGger:SOURce? 
;Utility Commands
#scpiCmd UTIL:RANG txrx :UTILity:RANGe (value) 
#scpiCmd UTIL:RANG txrx? :UTILity:RANGe?
#scpiCmd UTIL:MEAS:SENS txrx :UTILity:MEASure:SENSe (value)
#scpiCmd UTIL:MEAS:SENS? txrx? :UTILity:MEASure:SENSe? 
;Voltage Subsystem
#scpiCmd VOLT txrx :VOLTage (value) 
#scpiCmd VOLT:TRIG txrx :VOLTage:TRIG (value) 
#scpiCmd VSET txrx :VSET (value) 
#scpiCmd VOLT? txrx? :VOLTage?
#scpiCmd VOLT:TRIG txrx :VOLTage:TRIGgered? 
#scpiCmd VSET? txrx? :VSET? 
#scpiCmd VOLT:DUTY txrx :VOLTage:DUTY (value) 
#scpiCmd VOLT:TRAN:DUTY txrx :VOLTage:TRANsient:DUTY (value) 
#scpiCmd VOLT:DUTY? txrx? :VOLTage:DUTY?
#scpiCmd VOLT:TRAN:DUTY? txrx? :VOLTage:TRANsient:DUTY? 
#scpiCmd VOLT:FREQ txrx :VOLTage:FREQuency (value) 
#scpiCmd VOLT:TRAN:FREQ txrx :VOLTage:TRANsient:FREQuency (value) 
#scpiCmd VOLT:FREQ? txrx? :VOLTage: FREQuency?
#scpiCmd VOLT:TRAN:FREQ? txrx? :VOLTage:TRANsient:FREQuency? 
#scpiCmd VOLT:PROT txrx :VOLTage:PROTection (value)
#scpiCmd VOLT:PROT:DEL txrx :VOLTage:PROTection:DELay (value)
#scpiCmd VOLT:PROT:STAT txrx :VOLTage:PROTection:STATe (value)
#scpiCmd VOLT:PROT:UND txrx :VOLTage:PROTection:UNDer (value)
#scpiCmd VOLT:PROT:UND:STAT txrx :VOLTage:PROTection:UNDer:STATe (value)
#scpiCmd VOLT:PROT? txrx? :VOLTage:PROTection? 
#scpiCmd VOLT:PROT:OVER? txrx? :VOLTage:PROTection:OVER? 
#scpiCmd VOLT:PROT:DEL? txrx? :VOLTage:PROTection:DELay? 
#scpiCmd VOLT:PROT:OVER:DEL? txrx? :VOLTage:PROTection:OVER:DELay? 
#scpiCmd VOLT:PROT:UND:DEL? txrx? :VOLTage:PROTection:UNDer:DELay? 
#scpiCmd VOLT:PROT:STAT? txrx? :VOLTage:PROTection:STATe? 
#scpiCmd VOLT:PROT:UND? txrx? :VOLTage:PROTection:UNDer? 
#scpiCmd VOLT:PROT:UND:STAT? txrx :VOLTage:PROTection:UNDer:STATe? 
#scpiCmd VOLT:SLEW:BOTH txrx :VOLTage:SLEW:BOTH (value) 
#scpiCmd VOLT:SLEW:NEG txrx :VOLTage:SLEW:NEGative (value)
#scpiCmd VOLT:SLEW:NEG? txrx? :VOLTage:SLEW:NEGative? 
#scpiCmd VOLT:SLEW txrx :VOLTage:SLEW (value) 
#scpiCmd VOLT:SLEW:POS txrx :VOLTage:SLEW:POSitive (value) 
#scpiCmd VOLT:SLEW? txrx? :VOLTage:SLEW?
#scpiCmd VOLT:SLEW:POS? txrx? :VOLTage:SLEW:POSitive? 
#scpiCmd VOLT:TLEV txrx :VOLTage:TLEVel (value) 
#scpiCmd VTR txrx :VTR (value) 
#scpiCmd VOLT:TLEV? txrx? :VOLTage:TLEVel?
#scpiCmd VTR? txrx? :VTR? 
#scpiCmd VOLT:TRAN:TWID txrx :VOLTage:TRANsient:TWIDth (value) 
#scpiCmd VOLT:TWID txrx :VOLTage:TWIDth (value) 
#scpiCmd VOLT:TRAN:TWID? txrx? :VOLTage:TRANsient:TWIDth? 
#scpiCmd VOLT:TWID? txrx? :VOLTage:TWIDth? 
#scpiCmd VOLT:VON txrx :VOLT:VON (value)
#scpiCmd VOLT:VON:STAT txrx :VOLT:VON:STAT (value)
;misc
#scpiCmd MODE txrx :MODe (value)
#scpiCmd MODe? txrx :MODe?


This type will specify the handle name for the first device with this type
; This makes it possible to easy get generic handle names for a setup, that will work with a script
#interfaceType Load
#askValuesReadFormat uuu
; These function will adjust settings
#interface setVoltage VOLT (value)
#interface setCurrent CURR (value)
#interface setPower POW (value)
#interface setResistance RES (value)
#interface setRemoteSense MEAS:SENS (value)
#interface setOn INP (value)
; These function will return the value applied with the set function
#interface getVoltage VOLT?
#interface getCurrent CURR?
#interface getPower POW?
#interface getResistance RES?
#interface getRemoteSense MEAS:SENS?
#interface getOn INP?
; These functions will read the actual values
; These can either contain a number that will reference to a data column or they can contain a command to read the value
#interface readVoltage 0
#interface readCurrent 1
#interface readPower 2


#cmdSetup indicator Status Main
:read: inp?
:updatealloff:
Off 0 red
On value=="ON" Red

#cmdSetup indicatornum Status Main
:read: MEAS:SENS?
:readmath: getElement(value,4)
Local_sense 0 Blue
Remote_Sense 1 Yellow

#cmdSetup info Mode Main
:read: MODE?
_

#cmdSetup radio Mode Main
:read: MODE?
:write: MODE
:update: Mode
:string:
CC CC
CV CV
CP CP
CR CR


#cmdSetup radio Current Main
:read: curr?
:write: curr 
:update: Mode
:tip: Load current for current mode
100mA 0.1
300mA 0.3
1A 1.0
3A 3.0
10A 10.0
20A 20.0
30A 30.0


#cmdSetup number Voltage Main
:read: volt?
:write: volt 
:update: Mode
:buttontext: Mode
:tip: Load voltage for voltage mode
Volt 0.1 60


#cmdSetup number Current Main
:read: curr?
:write: curr
:update: Mode
:buttontext: Mode
:tip: Load current for current mode
Amps 0 300

#cmdSetup number Power Main
:read: pow?
:write: pow 
:update: Mode
:buttontext: Mode
:tip: Load power for power mode
Watt 0 MaxPower

#cmdSetup number Resistance Main
:read: res?
:write: res 
:update: Mode
:buttontext: Mode
:tip: Load resistance for resistance mode
Ohm 0 7500


#cmdSetup checkbox Remote_sense Main
:read: MEAS:SENS?
:readmath: listIndex(value,"OFF ON");
:write: MEAS:SENS
:update: Status
on 0 1


#cmdsetup buttons Status
:write: inp
off 0
on 1